package day02;

/*
数组：相同类型的元素，按顺序存放，使用一个名字命名。
1. 有序排序
2. 相同类型
3. 可以通过下标/索引访问元素
4. 数组长度是固定的，不能修改。
 */
public class Demo04 {
    public static void main(String[] args) {
        // 创建一个数组，里面有10个元素。
        // 初始化数组
        int[] ids = new int[10];

        ids[0] = 1001; // 给数组中的元素赋值
        ids[1] = 1002;
        ids[9] = 1010;
        // ids[10] = 1011; // 数组越界 java.lang.ArrayIndexOutOfBoundsException
        System.out.println(ids[9]);

        // 初始化一个数据并赋值，
        String[] names = new String[]{"Tom", "Lily", "Lucy"};
        // new String[]可以省略，根据元素的值系统能推断出来是String类型
        String[] names2 = {"Tom", "Lily", "Lucy"};

        System.out.println("长度：" + names.length);

        /*
        for循环遍历数组：根据索引遍历元素
         */
        for (int i = 0; i < names.length; i++) {
            System.out.println(names[i]);
        }
        /*
        foreach 遍历数组：直接遍历数组中的元素
         */
        for (String name : names) {
            System.out.println(name);
        }

        /*
        遍历ids这个数组
         */
        for (int id : ids) {
            System.out.println(id);
        }

        /*
        练习：把7天的温度存放到一个数组中，计算平均温度。
         */
        double[] temps = {34, 35, 32, 28, 27, 33, 24};
        double sum = 0;
        for (double temp : temps) {
            sum = sum + temp;
        }
        System.out.println("平均温度：" + (sum / temps.length));

        /*
        计算最大温度/最小温度。
        打擂台的方法：
        使用max变量存放最大温度，
        把数组中第一个元素给max，
        然后剩余的跟max比较，比max大，将max替换掉。
         */
        double max = temps[0];
        double min = temps[0];
        for (double temp : temps) {
            if(temp > max) {
                max = temp;
            }
            if(min > temp) {
                min = temp;
            }
        }
        System.out.println("最大温度为：" + max);
        System.out.println("最小温度为：" + min);

    }
}
